iT邦幫忙

2023 iThome 鐵人賽

DAY 20
0
自我挑戰組

探索 Spring Boot Doc系列 第 20

SimpleCommandLinePropertySource

  • 分享至 

  • xImage
  •  

今天就以 SimpleCommandLinePropertySource 為主,其中的字首Simple 代表一個簡單的字串陣列。

在 SimpleCommandLinePropertySource 之中,就有提及抽象類別 CommandLinePropertySource 的目的; 該抽象類別實作的目地(此處的實作就是SimpleCommandLinePropertySource)是提供最簡單可行解析指令列參數的方法。

所有(CommandLinePropertySource) 的實作面對的指令列參數都分成兩群,選項參數(option-arguments) 以及 非選項參數(non-option arguments) 。

選項參數(option-arguments) 在下達指令的當下透過兩個 - 帶出的參數,有如此的形式
—optionName[=optValue]
以下範例為官方提供的(有效)範例

—foo

—foo=

—foo=””

—foo=bar

—foo=”bar then baz”

—foo=bar,baz,biz

官方提供option-arguments 錯誤範例

 -foo //只有一個減號
 --foo bar //optName 和 Value 必須用等號連接,而且不得有空格
 --foo = bar
 --foo=bar --foo=baz --foo=biz // 選項名稱,只能出現一次,若有複數值得逗號相連出現

什麼是 non-option arguments ,簡言之就是凡事沒有雙減號開頭的Name 就是 non-option,而這類參數可以透過 CommandLineArgs.getNonOptionArgs() 取得 。

這裡的 CommandLineArgs 是一個類別,而該類別在 spring framework 3.0.6 仍保有,但在現今的
6.X.X 版本之中,已經看不見這個類別。

但如果你是從 SimpleCommandLinePropertySource 去搜尋 CommandLineArgs 的蹤跡的話,你會發現

https://ithelp.ithome.com.tw/upload/images/20231004/20161770AuKXJj0eeU.png

CommandLinePropertySource<org.springframework.core.env.CommandLineArgs> 不段出現,如果這時候又從抽象類別 CommandLinePropertySource 去看的話,會從建構子中發現

CommandLinePropertySource(T source) Create a new CommandLinePropertySource having the default name "commandLineArgs" and backed by the given source object.

CommandLineArgs 並未消失,而是成為CommandLinePropertySource的實例之一。

參考資料
{官方} SimpleCommandLinePropertySource API

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/env/SimpleCommandLinePropertySource.html

{官方} CommandLinePropertySource

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/env/CommandLinePropertySource.html

{官方} CommandLineArgs 舊資料

https://docs.spring.io/spring-framework/docs/3.0.6.RELEASE_to_3.1.0.BUILD-SNAPSHOT/3.1.0.BUILD-SNAPSHOT/org/springframework/core/env/CommandLineArgs.html


上一篇
Doc 7.1. SpringApplication
下一篇
JOptCommandLinePropertySource
系列文
探索 Spring Boot Doc30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言